﻿// <copyright file="IMapViewer.cs" company="Ecole Normale Supérieure">
// Released under GPLv2
// </copyright>
// <summary>Contains the interface IMapViewer.</summary>

namespace Sqwarea.GameLogic.View
{
    using System.Collections.Generic;
    using System.Drawing;
    using Sqwarea.Persistence;

    /// <summary>
    /// Interface IMapViewer, a map viewer provider.
    /// </summary>
    public interface IMapViewer
    {
        /// <summary>
        /// Gets the view of kingId user related to the rectangle.
        /// </summary>
        /// <param name="kingId">Id of the required king</param>
        /// <param name="rectangle">Rectangle related to the view</param>
        /// <returns>See summary</returns>
        UserRectangleView GetView(long kingId, Rectangle rectangle);

        /// <summary>
        /// Gets the incoming attacks to kingId user (i.e. attacks against this king's squares)
        /// </summary>
        /// <param name="kingId">Id of the required king</param>
        /// <returns>See summary</returns>
        IEnumerable<AttackView> GetIncomingAttacks(long kingId);

        /// <summary>
        /// Gets the ongoing attacks og kingId user (i.e. attacks sended by this king).
        /// </summary>
        /// <param name="kingId">Id of the required king</param>
        /// <returns>See summary</returns>
        IEnumerable<AttackView> GetOngoingAttacks(long kingId);
    }
}
